package com.gonsin.ta.logic.parse.condition.context;

import java.io.Serializable;
import java.util.Map;

/**
 * 流程上下文接口
 */
public interface ChainContext {

    /**
     * 中断流程
     */
    void endChain();

    /**
     * 获取实例id
     */
    String getInstanceId();

    /**
     * 获取流程id
     */
    String getChainId();

    /**
     * 查询数据
     */
    <T> T getValue(String key);

    /**
     * 设置数据
     */
    void putValue(String key, Serializable value);

    /**
     * 设置多个数据
     */
    void setValues(Map<String, Serializable> values);

    /**
     * 查询全部数据
     */
    Map<String, Object> getValues();


    /**
     * 获取springboot的bean对象
     */
    Object getBean(String beanName);


    /**
     * 获取springboot的bean对象
     */
    Object getBean(Class beanClass);
}
